package cl.coopeuch.financiamientoproductos.integracion.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.log4j.Logger;

import cl.coopeuch.exception.CoopeuchIntegracionException;

/**
 * Clase Utilitaria
 * 
 * @author faviles
 * @version 1.0,02/12/2011
 */
public class UtilValidate {
	private static Logger logger = Logger.getLogger("UtilValidate");
	

		/**
	 * Convierte una fecha tipo String a un objeto Date
	 * 
	 * @param fecha
	 * @return Date fecha ingresada como objeto Date
	 * @throws CoopeuchIntegracionException 
	 */
	public static Date convierteFechaDate(String fecha) throws CoopeuchIntegracionException {
		Date dFechaIngreso = null;
		try {
			if (fecha != null) {
				SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
				dFechaIngreso = dateFormat.parse(fecha);
			}
		} catch (ParseException e) {
			logger.error(e);
			throw new CoopeuchIntegracionException();
		} catch (Exception ex) {
			logger.error(ex);
			throw new CoopeuchIntegracionException();
		}
		return dFechaIngreso;
	}
	
	/**
	 * Convierte una fecha tipo String a un long
	 * 
	 * @param fecha
	 * @return fecha ingresada como long
	 * @throws CoopeuchIntegracionException 
	 */
	public static long convierteFechaALong(String fecha) throws CoopeuchIntegracionException {
		SimpleDateFormat dateFormat= new SimpleDateFormat("dd/MM/yyyy"); 
		Date fechaDate = null;
		long resultado = 0;
		try {
			fechaDate=dateFormat.parse(fecha); 
			resultado = fechaDate.getTime();
		} catch (ParseException e) {
			logger.error(e);
			throw new CoopeuchIntegracionException();
		} catch (Exception ex) {
			logger.error(ex);
			throw new CoopeuchIntegracionException();
		}
		return resultado;
	}
	/**
	 * Convierte una fecha tipo long a Date
	 * 
	 * @param fecha
	 * @return fecha ingresada como long
	 * @throws CoopeuchIntegracionException 
	 */
	@SuppressWarnings("null")
	public static Date convierteFechaALong(long fecha) throws CoopeuchIntegracionException {
		Date resultado = null;
		try {
			resultado.setTime(fecha);
		}catch (Exception ex) {
			logger.error(ex);
			throw new CoopeuchIntegracionException();
		}
		return resultado;
	}
	/**
	 * Devuelve la fecha actual
	 * 
	 * @return fecha actual como int
	 * @throws CoopeuchIntegracionException 
	 */
	public static int getFechaActual() throws CoopeuchIntegracionException {
		SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy/MM/dd"); 
		Date fechaDate = new Date();
		String result = "";
		try {
			result = dateFormat.format(fechaDate);
			result=result.replace("/", "");
		}catch (Exception ex) {
			logger.error(ex);
			throw new CoopeuchIntegracionException();
		}
		return Integer.parseInt(result);
	}
	
}
